1
El misterio de la moneda de diez centavos y la realidad de los números en coma flotante
AI017Lesson 3
00:00

La fricción fundamental en la física computacional surge porque las computadoras representan números reales usando matemáticas en coma flotante binaria. A diferencia del pensamiento humano en base-10 (decimal), el hardware almacena valores en base-2 (binaria). Esto da lugar a una abstracción imperfecta: fracciones decimales simples como 0.1 no pueden representarse con precisión.

1. La realidad de los números en coma flotante

Go proporciona dos tipos principales para números reales: float32 y float64. Cuando se utiliza la sintaxis abreviada para declarar variables como precio := 0.0, Go por defecto usa float64. Estos tipos son aproximaciones de la realidad, no valores matemáticos exactos.

0.1 + 0.1 = ?Gopher: "¿Por qué no es 0.2?"0.0001100110011...

2. El misterio del 0.1

En base-10, $1/3$ da como resultado un número decimal infinito periódico ($0.333...$). En base-2, el valor $0.1$ da como resultado un fracción periódica infinita. Debido a que la memoria de la computadora es finita, esta fracción se trunca, lo que genera errores acumulativos. Por ejemplo, $0.1 + 0.2$ da como resultado $0.30000000000000004$ en lugar de exactamente $0.3$.

Advertencia: Nunca uses == para comparar números en coma flotante en puertas lógicas, ya que estas pequeñas diferencias provocarán que las comparaciones fallen.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>